package day02;

public class DataTypeDemo {
    public static void main(String[] args) {
        //转换类型
        int a = 5;
        long b = a;//自动类型转换，由小到大
        int c = (int)b;//强制类型转换（要转换成为的数据类型）变量

        long d = 5;//自动类型转换
        double e =d;//自动类型转换
        System.out.println(e);

        long f = 10000000000L;
        int g = (int)f;
        System.out.println(g);//强制转换有可能发生溢出

        double h = 25.978;
        int i = (int)h;
        System.out.println(i);//强制转换可能丢失精度

        int w ='我';//看字符对应的码是int
        System.out.println(w);
        char z = 65;//看码对应的字符是char
        System.out.println(z);

        System.out.println(2+2);//数字2相加=4
        System.out.println(2+'2');//2+字符2的码=52
        System.out.println('2'+'2');//字符2的码加上字符2的码=100
        System.out.println('2');//未参与计算 输出2


        char c1 = '女';
        char c2 = 'f';
        char c3 = '6';
        //char c5 = 女;编译错误，字符直接量必须放在单引号中
        //char c6 = '';编译错误，必须有字符
        //char c7 = '10';编译错误，只能装一个字符
        char c8 = 65;//0到65535之间
        System.out.println(c8);//'A',println()时会依据c8的类型来做输出
                               //若c8为char类型，则以字符形式展示
                               //若c8为int类型，则以数字形式展示
        char c9 = '\\';
        System.out.println(c9);


        /*
        //4)booleam:布尔型，1个字节
        boolean a = true;//true为布尔型直接量
        boolean b = false;//false为布尔型直接量
                     //布尔型只能存储true或false
        */

        /*
        //3)double:浮点型，8个字节，很大很大很大
        double a =25.678d;//25.678为小数直接量，默认为double类型
        float b =25.678f;//25.678F为float型直接量

        double c=3.0,d=2.9;
        System.out.println(c-d);//0.10000000000000009,发生舍入误差了


        /*
        //2)long:长整型，8个字节，-900万万亿多到900万万亿多
        long a = 25L;//25l为长整型直接量
        long c = 10000000000L;
        long d = 365L*24*60*60*1000;
        System .out.println(d);//参与计算L放第一位

        long e = 1000000000*2*10L;
        System.out.println(e);//200亿
        long f = 1000000000*3*10L;
        System.out.println(f);//不是300亿
        long g = 1000000000L*3*10;
        System.out.println(g);//300亿
        */

        /*
        //1)int:整型，4个字节，-21个多亿到21个多亿
        int a = 250;//250是整数直接量，默认为int类型
                    //int整型变量中只能装整数
        System.out.println(5/2);
        System.out.println(2/5);
        System.out.println(5/2.0);

        int d = 2147483647;//int的最大值
         */

    }
}


